#ifndef __SKIPLIST_H
#define __SKIPLIST_H

#include "dataStructure.h"
#include "skipListItem.h"
#include "node.h"
#include <cstdlib>


class skipList : public dataStructure<skipListItem*>
{
	private:
		skipListItem* topHead;
		int height;

	public:
		skipList();
		void addNode(Node* node);
		bool empty();
		void remove(skipListItem* item);
		void allocate(int width, int height);
		void freeNodes();
		Node* selectNodeLowestScore();
		std::pair<skipListItem*, Node*> findNode(int x, int y);
		void modifyNode(skipListItem* item);
};

#endif